package cn.edu.scau.cmi.yanghongyu.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

public class FoodtypeLibraryUtil {
	
	private static Map<Integer, Set<Integer>> foodtypeLibraryMap;
	
	static {
		InputStream inputStream = FoodtypeLibraryUtil.class.getClassLoader().getResourceAsStream("ema-project.properties");
		Properties properties = new Properties();
		try {
			properties.load(inputStream);
			foodtypeLibraryMap = new Gson().fromJson(properties.getProperty("foodtype-library"), 
					new TypeToken<HashMap<Integer, HashSet<Integer>>>() {}.getType());
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 根据foodtypeId，返回该id对应的食品类型子库
	 * @param foodtypeId 食品类型id
	 * @return 对应的食品类型子库，不存在返回空
	 */
	public static Set<Integer> getSubLibrary(int foodtypeId) {
		return foodtypeLibraryMap.get(foodtypeId);
	}
	
	/**
	 * 根据subFoodtypeId，获取该id所在的食品类型库的id
	 * @param subFoodtypeId 食品类型id
	 * @return subFoodtypeId所在的食品类型库的id，不存在返回空
	 * 2020年11月23日：不存在就返回id是-2的记录
	 */
	public static Integer getFoodtypeLibrary(int subFoodtypeId) {
		for (Entry<Integer,Set<Integer>> e : foodtypeLibraryMap.entrySet()) {
			if (e.getValue().contains(subFoodtypeId)) return e.getKey();
		}
		return -2;
	}
	
	public static Map<Integer, Set<Integer>> getFoodtypeLibraryMap() {
		return foodtypeLibraryMap;
	}
}